package com.rfsp.common.schedule;

import java.time.LocalDateTime;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;

//@Component
public class McpScheduleConfig implements SchedulingConfigurer {

//	@Autowired
//	@SuppressWarnings("all")
//	CronMapper cronMapper;

	/**
	 * 执行定时任务.
	 */
	@Override
	public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {

		String cron = "*/6 * * * * ?";
		// 设置corn表达式，后续配置在数据库中查询出来
		taskRegistrar.addTriggerTask(
			// 1.添加任务内容(Runnable)
			() -> {
				System.out.println("定时任务执行，时间为 ：" + LocalDateTime.now().toLocalTime());
			},
			// 2.设置定时时间
			triggerContext -> {
				// 2.3 返回执行周期(Date)
				return new CronTrigger(cron).nextExecutionTime(triggerContext);
			});
	}

//	注意：当你修改了任务执行周期后，生效时间为执行完最近一次任务后。
//	这一点是需要注意的，用生活中的例子理解就是我们取消电话卡的套餐也要下个月生效，含义是一样的。

}
